Exemplary embodiments are related to resource availability in a network. More particularly, exemplary embodiments relate to reporting availability status of resources associated with a network.
Typical application servers may include a front end resource controller with a set of resources at the back end. These application servers can co-exist with various capacities of resources behind each controller. The variation of the capacity of the resources behind each controller may be due to the evolution of the product or due to the depletion of a particular server, such as when some resource hardware or software instances are experiencing a fault condition or are offline. During the continuing operation of the computer network, the capacity of these resources may be dynamically changing for various reasons, such as hardware or software faults.
In existing networks, client applications request particular services from available application servers typically using Session Initiation Protocol (SIP). However, in existing networks, client applications do not dynamically adjust their request distribution across all available servers depending upon the available resource capacities of the application servers. This may lead to delays in processing requests from clients due to overloaded application servers as well as an unbalanced load distribution amongst the available application servers.
Prior attempts to address these problems have been met with limited success. Some client applications may employ the use of load balancers to balance the load of the application servers. These load balancers may watch the availability of the servers using heartbeat methods. The load balancers may then utilize some algorithm, such as round-robin or weighted round-robin, to distribute requests from client applications among available application servers. However, these load balancers do not have a view of the dynamic changes of resource availability of the application servers behind the controller, resulting in overloading the remaining available application servers and creating delays and errors.